Methods and apparatus to detect proximity of objects to computing devices using near ultrasonic sound waves

ABSTRACT

Methods and apparatus to detect proximity of objects to computing devices using near ultrasonic sound waves are disclosed. An example apparatus includes a signal generator to cause a speaker of a computing device to produce a series of pulses. Successive ones of the pulses are spaced at fixed intervals. Ones of the pulses having a central frequency between 18 kHz and 24 kHz. The example apparatus includes an echo profile generator to process noise information sensed by a microphone of the computing device. The noise information includes the pulses and echoes of the pulses reflected off objects in a vicinity of the computing device. The example apparatus further includes an object detection analyzer to determine whether a first object is within an activation region associated with the computing device based on the pulses and the echoes sensed by the microphone.

RELATED APPLICATIONS

This patent arises from a continuation of U.S. patent application Ser.No. 16/363,315 (now U.S. Pat. No. 10,725,588), which was filed on Mar.25, 2019. U.S. patent application Ser. No. 16/363,315 is herebyincorporated by reference in its entirety.

FIELD OF THE DISCLOSURE

This disclosure relates generally to proximity sensing, and, moreparticularly, to methods and apparatus to detect proximity of objects tocomputing devices using near ultrasonic sound waves.

BACKGROUND

There are a number of different human-machine interfaces that enablepeople to interact with a computing device. Some example human-machineinterfaces include a keyboard or keypad, a mouse or other pointingdevice, a touchscreen, etc. Other techniques have been developed that donot require a person to physically touch the device such as, forexample, through voice commands and/or based on detecting of theproximity and/or gestures of a user near the device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example computing device implemented in accordancewith teachings disclosed herein.

FIG. 2 illustrates an example static environment echo profile generatedin accordance with teachings disclosed herein based on actual data.

FIG. 3 illustrates an example full echo profile generated in accordancewith teachings disclosed herein based on actual data.

FIG. 4 illustrates an example non-static echo profile generated inaccordance with teachings disclosed herein based on actual data.

FIG. 5 is a table providing experimental results from implementingteachings disclosed herein.

FIG. 6 illustrates an example implementation of the example computingdevice of FIG. 1.

FIGS. 7-10 are flowcharts representative of example machine readableinstructions that may be executed to implement the example computingdevice of FIGS. 1 and/or 6.

FIG. 11 is a block diagram of an example processing platform structuredto execute the example instructions of FIGS. 7-10 to implement theexample computing device of FIGS. 1 and/or 6.

The figures are not to scale. In general, the same reference numberswill be used throughout the drawing(s) and accompanying writtendescription to refer to the same or like parts.

Descriptors “first,” “second,” “third,” etc. are used herein whenidentifying multiple elements or components which may be referred toseparately. Unless otherwise specified or understood based on theircontext of use, such descriptors are not intended to impute any meaningof priority, physical order or arrangement in a list, or ordering intime but are merely used as labels for referring to multiple elements orcomponents separately for ease of understanding the disclosed examples.In some examples, the descriptor “first” may be used to refer to anelement in the detailed description, while the same element may bereferred to in a claim with a different descriptor such as “second” or“third.” In such instances, it should be understood that suchdescriptors are used merely for ease of referencing multiple elements orcomponents.

DETAILED DESCRIPTION

There are a variety of techniques that may be implemented by a computingdevice to identify and/or detect an object in proximity to the computingdevice. In some instances, infrared (IR) depth sensors may be employed.However, many existing computing devices do not include IR depthsensors, thus, limiting the applicability of such approaches and/orimposing increased costs to the development and manufacture of newdevices that include the additional components to implement thistechnique. Further, the effective range of detection possible by IRsensors is relatively limited. Further still, processing IR sensor datais relatively computationally intensive, thereby requiring increasedcomputational capacity and a corresponding increase in power capacityrelative to devices that do not implement IR sensors.

A second technique to detect the proximity of objects include theprocessing of images captured by a camera. Image processing for objectdetection is computationally intensive. Indeed, many image processingapplications implement dedicated hardware (e.g., a specialized imageprocessor) to improve efficiencies in the heavy computations involved.Therefore, as with IR sensors, there are significant costs to includethe components needed for effective image sensing. Furthermore, therelatively high computational burdens associated with image processingresult in relatively significant power requirements.

A third approach to detecting proximity of objects is based on highbandwidth ultrasonic technologies. Such techniques involve specializedspeakers, microphones, and/or associated circuitry that are notimplemented in many known computing devices. For example, traditionalspeakers and microphones for mobile devices (e.g., laptops, tablets,smartphones, etc.) support only 48 kHz and/or 44.1 kHz samplingfrequencies. However, some high bandwidth ultrasonic technologies employsensors with high bandwidth (e.g., greater than 96 kHz) CODECs (e.g.,speaker driving circuit) in the excitation path. Further, the soundcapturing microphone and associated driving circuit also need to supporthigh bandwidths beyond what is traditionally implemented in manyexisting computing devices. Therefore, there are increased costs inmanufacturing devices capable of implementing such techniques becauseadditional and/or more expensive components are required. Further, thehigher bandwidths associated with such technique produces more data tobe analyzed thereby resulting in increased computational burdens andassociated increases in power requirements.

One particular application for object proximity detection is to enable auser of a computing device to cause the device to perform or initiatesome action on the computing device without the user having tospecifically touch the device. An example action might be to wake up thedevice from a sleep or idle state (e.g., a low power state) to an active(full power) state. As mentioned above, IR depth sensing techniques,image processing techniques, and high bandwidth ultrasonic sensingtechniques require relatively significant amounts of power such thatthey are unsuitable for implementation in a low power state (e.g., asleep state or idle state), particular in associated with mobilecomputing devices that rely on a battery for power.

Examples disclosed herein overcome the limitations of the aboveapproaches by implementing a methodology that does not require anyspecialized components. Rather, examples disclosed herein may beimplemented using typical speakers and microphones (that support 48kHz/44.1 kHz sampling frequencies) commonly found in the vast majorityof mobile devices and other computing devices that exist today. As aresult, examples disclosed herein do not result in any additional coststo manufacture the devices that may implement the disclosedmethodologies. Furthermore, the computational burden of examplesdisclosed herein is relatively small such that specialized processingcomponents or not required. Further, the power requirements for examplesdisclosed herein are sufficiently low to enable implementation when thecomputing device is in a low power or idle state (e.g., asleep). Thatis, examples disclosed herein may be implement when a computing deviceis in a lower power state (e.g., in a sleep state) than when the deviceis in a fully active state to wake up the device from the lower powerstate to the fully active state.

More particularly, examples disclosed herein detect the presence and/orproximity of objects near a computing device based on near ultrasonicsound waves. Ultrasonic sound waves are sound waves with frequencieshigher than the upper limit of the frequency ranges for sound that isaudible to humans. While the upper limit of audible sound waves variesfrom person to person, the limit for most people is around 20 kilohertz(kHz). As used herein, near ultrasonic sound waves refer to sound waveswithin a region that is close to the upper limit of human hearing. Morespecifically, as used herein, near ultrasonic sound waves are soundwaves having a frequency between 18 kHz and 24 kHz. By contrast, knownhigh bandwidth ultrasonic sensing techniques mentioned above aretypically implemented at frequencies well above the human limit ofhearing (e.g., at frequencies above 40 kHz). Existing ultrasonictechniques operate at such high frequencies because operating in thenear ultrasonic range (e.g., between 18 kHz and 24 kHz) has presentedsignificant challenges due to noise in the environment. That is, whilemany devices already include speakers and microphones capable ofoperating in this frequency range, the noise that is picked up bymicrophones in this range has made it difficult to reliably identifyrelevant signals needed for accurate depth sensing. As described below,examples disclosed herein enable the identification and/or isolation ofrelevant signals within the near ultrasonic frequency range from amongother noises that may be in the environment to allow for accurate andreliable object detection. Further, the processing of such signals isaccomplished in a computationally and power efficient manner that issuitable for implementation when a computing device is in a low powersleep. As a result, examples disclosed herein may be used to detect thepresence of an object (e.g., a user's hand) in the vicinity of acomputing device in an idle state to trigger the device to wake up to afull power active state.

FIG. 1 illustrates an example computing device 100 implemented inaccordance with teachings disclosed herein. The example computing device100 includes a speaker 102 and a microphone 104. In the illustratedexample, the computing device 100 is shown as a laptop computer.However, the computing device may be any type of computing device (e.g.,a desktop computer, a tablet, a smartphone, etc.) that includes both aspeaker 102 and a microphone 104. The speaker and microphone may bestandard components that are built into the originally manufactureddevice. Although only one speaker 102 and one microphone 104 are shown,teachings disclosed herein may be implemented by a device that includesmore than one speaker and/or more than one microphone.

The speaker 102 may emit or produce sound waves that propagate in theenvironment surrounding the computing device 100. In some examples, suchacoustic signals may be detected by the microphone 104. Moreparticularly, such acoustic signals may follow a direct signal path 106in which the signals are sensed directly by the microphone 104.Additionally or alternatively, the signals may follow an indirect orecho signal path 108 in which the signals reflect off objects in thevicinity of the computing device 100 as an echo of the initial soundwave that is then sensed by the microphone 104. In the illustratedexample, the echo signal path 108 is shown as reflected off the hand 110of a user. However, the same acoustic signals may also reflect off otherobjects in the vicinity of the device 100 that are not represented inthe illustrated example of FIG. 1. For example, the same acoustic signalproduced by the speaker 102 may also reflect off the user's arm and/orother parts of the user's body (e.g., torso, face, etc.), with suchechoes being sensed by the microphone 104. Further, the same acousticsignal may reflect as an echo off of furniture (e.g., a desk, a chair,etc.), walls, ceilings, and/or any other object(s) within the vicinityof the computing device 100.

For purposes of explanation, small waveforms are shown on each of thedirect and echo signal paths 106, 108 to represent individual acousticpulses (collectively identified by reference numeral 112) generated inseries by the speaker 102 at fixed intervals. While separate waveformsare shown on both the direct signal path 106 and the echo signal path108, corresponding ones of the waveforms on both paths 106, 108 areassociated with the same acoustic pulses 112. That is, the two waveformsidentified by reference numeral 112 a correspond to a single firstacoustic pulse 112 a (i.e., both are generated from a single excitationof the speaker 102 at a single point in time). Similarly, the twowaveforms identified by reference numeral 112 b correspond to a singlesecond acoustic pulse 112 b generated a period of time (corresponding tothe fixed interval for the repeating pulses 112) after the firstacoustic pulse 112 a. Further, the two waveforms identified by referencenumeral 112 c correspond to a single third acoustic pulse 112 cgenerated a period of time after the second acoustic pulse 112 b.

The illustrated example of FIG. 1 also includes additional waveformsalong the echo signal path 108 after being reflected off the user's hand110 to represent echoes 114 a, 114 b, 114 c associated with additionalacoustic pulses 112 generated before the first acoustic pulse 112 a. Thewaveforms corresponding to the echoes 114 a, 114 b, 114 c do not have acorresponding waveform shown on the direct signal path 106 in FIG. 1because the associated acoustic pulses 112 have already reached themicrophone 104 at the time represented in the illustrated example. Thatis, as shown in the illustrated example, the direct signal path 106 isshorter than the echo signal path 108 such that the microphone 104 willsense an acoustic pulse 112 propagating along the direct signal path 106before sensing echoes 114 corresponding to the same acoustic pulse 112propagating along the echo signal path 108. The time delay between whenan acoustic pulse 112 is sensed directly by the microphone 104 and whenan echo 114 of the same acoustic pulse 112 is sensed by the microphone104 after reflecting off an object is proportional to the distance ofthe of the object from the computing device 100.

The waveforms representative of the echoes 114 in FIG. 1 are shown asbeing smaller (e.g., having less amplitude or power) than the first,second, and third acoustic pulses 112 a, 112 b, 112 c because objects donot perfectly reflect acoustic signals. Rather, some power in theincident signal is lost when it is reflected as an echo. Furthermore,the strength of an echo is proportional to the size of the obstacle fromwhich the echo was reflected. Another factor affecting the strength ofan echo is the distance of the object. More particularly, the strengthof an echo is inversely proportional to the distance of the object fromthe original source of the acoustic signal (e.g., the speaker 102). Thetime delay between the detecting of acoustic pulses 112 (via the directsignal path 106) and the detecting of corresponding echoes 114 inconjunction with the strength of the echoes 114 is used herein toidentify the presence and/or proximity of an object (e.g., the user'shand 110) to the computing device 100. The acoustic pulses 112 senseddirectly by the microphone 104 (via the direct signal path 106) arereferred to herein as reference signals because they serve as referencepoints to which subsequently detected echoes 114 are compared todetermine depth information indicative of the proximity or distance ofobjects (e.g., the user's hand 110) to the computing device 100.

As mentioned above, in some examples, the acoustic pulses 112 aregenerated at a fixed interval. The fixed interval establishes aconsistent periodicity for the acoustic pulses 112 to enable reliableidentification of the acoustic pulses 112 as they are sensed by themicrophone 104 (as reference signals) after propagating along the directsignal path 106. More particularly, because the distance between thespeaker 102 and the microphone 104 is fixed, the time for an acousticpulse 112 to travel along the direct signal path 106 from the speaker102 and be detected by microphone 104 as a reference signal is alsofixed. Therefore, the interval between subsequent reference signalsdetected by the microphone 104 will match the fixed interval between theacoustic pulses 112 as produced by the speaker 102. In some examples,the fixed interval changes depending on whether the system is operatingin a standby (lower power mode) or an active (higher power) mode. Forinstance, in some examples, the acoustic pulses 112 are generated by thespeaker 102 at intervals of 125 milliseconds (or eight times a second)during the active mode and at intervals of 500 milliseconds (or twice asecond) during the standby mode. In some examples, the fixed periodicityof the acoustic pulses 112 during the active mode may be more or lessthan 125 milliseconds. Likewise, the fixed periodicity of the acousticpulses 112 during the standby mode may be more or less than 500milliseconds. Regardless of the particular period of successive acousticpulses 112 in each of the standby mode and active mode, the active modeis associated with a shorter interval than the standby mode. The shorterperiod or interval during the active mode serves to increase theaccuracy and/or precision of the object detection process while thelonger period or interval during the standby mode serves to reduce powerconsumption of the process. Although the active mode consumes more powerthan the standby mode because the speaker 102 is excited morefrequently, as described more fully below, even the active mode isrelatively power efficient because the duration of each individualacoustic pulse 112 is less than 1 millisecond (e.g., approximately 400microseconds). Assuming a pulse duration of 400 microseconds with arepetition period of 125 milliseconds (during the active mode), thetotal amount of time the speaker 102 is excited each second is just over3 milliseconds. Therefore, even during the active mode, the speaker 102is actively producing acoustic pulses 112 less than 1 percent of thetime such that relatively little power is consumed.

In some examples, in addition to the fixed periodicity, each successiveacoustic pulse 112 is generated with a central frequency correspondingto near ultrasonic sound waves (e.g., in the range of 18 kHz to 24 kHz).For instance, in some examples, the acoustic pulses 112 are centered atapproximately 22 kHz. In other examples, the central or nominalfrequency may be lower than 22 kHz (e.g., 20 kHz) but at least above 18kHz. In other examples, the central frequency of the acoustic pulses 112may be higher than 22 kHz (e.g., 23 kHz) but no greater than 24 kHz.Further, in some examples, the acoustic pulses 112 are defined by aparticular shape and power level so that the pulses remain substantiallyinaudible to humans. More particularly, in some examples, the acousticpulses are shaped with sufficient ramp up time and ramp down time sothat the pulses remain inaudible to humans. In some examples, the basicshape of the acoustic pulses 112 is defined by Equation 1:

x[n]=A sin(2π(f/(Fs))n)  (Eq. 1)

where f is the excitation frequency that is centered within the nearultrasonic frequency range between 18 kHz and 24 kHz (e.g., centered at22 kHz); Fs is the sampling frequency that corresponds to the samplingfrequency supported by the microphone 104 (e.g., 48 kHz samplingfrequency); n corresponds to the sample number along the signal length(N) that may be represented by any number of samples based on thesampling frequency and duration of the sample; and A is the amplitudethat may have a value ranging from between 0.5 and 1 (e.g., 0.8).Further, the shape and generation of the acoustic pulses 112 is definedby an auto-correlation smoothening and a scaling factor defined asfollows:

x1[n]=x[n]⊗x[n]  (Eq. 2)

ScaleFactor=Max(x1[n])/2  (Eq. 3)

A final pulse value at sample n in each acoustic pulse 112 may bedefined by dividing Equation 2 by Equation 3:

y[n]=x1[n]/ScaleFactor  (Eq. 4)

While the acoustic pulses 112 generated by the speaker 102 have aconsistent form and are produced at a consistent periodicity, theresulting echoes 114 corresponding to different ones of the pulses 112do not necessarily have a consistent form (e.g., intensity) and may notbe detected at consistent time intervals. Variation between differentechoes 114 arises from the nature (e.g., size, shape, and material) ofthe objects off which the acoustic pulses 112 reflect and the distanceof such objects from the speaker 102. For example, echoes 114 reflectingoff a distant object will be weaker and arrive at a later point in timethan echoes 114 reflecting off a closer object. In some examples, thevariations in time and/or intensity of the echoes 114 detected by themicrophone 104 are compared against the consistent acoustic pulses 112detected by the microphone 104 to determine the presence and/orproximity of objects in the vicinity of the computing device 100.

In some examples, the proximity detection system of the computing device100 is designed to detect when an object (e.g., the user's hand 110) iswithin an activation region 116 associated with the computing device100. In some examples, the activation region 116 corresponds to an areawithin a threshold distance 118 of the computer device. The thresholddistance 118 may be any suitable distance (e.g., 6 inches, 12 inches, 18inches, 2 feet, 3 feet, etc.). If an object is detected within theactivation region 116 (e.g., the object is within the threshold distance118), the computing device 100 may activate or initiate an operationthat is associated with a detected object. In some examples, theoperation triggered by an object being detected within the activationregion 116 includes waking up the computing device 100 from a lowpowered sleep state or idle state to a full powered active state.

A challenge to identifying a particular object (e.g., the user's hand110) in the vicinity of the computing device 100 arises from the factthat the microphone 104 is likely to detect many other echoes 114reflected off other objects in the surrounding environment of computingdevice 100. Furthermore, independent of the echoes 114 corresponding tothe acoustic pulses 112, the environment may contain many other sourcesof noise (e.g., machines, people, etc.) that may also be detected by themicrophone 104. Such environmental noises may supersede and/or mimic theacoustic pulses 112 and/or the echoes 114 resulting in errors indetecting an intended object such as, for example, the user's hand 110.Errors may be false negatives (in which an object in the activationregion 116 is not detected) or false positives (in which an object isdetected in the activation region 116 when no object is actuallypresent). Of the two types of errors, false positives are moreproblematic because a false positive will trigger the operation of thecomputing device 100 when the user did not intend such operation tooccur. Accordingly, examples disclosed herein are designed to reduce(e.g., minimize) the likelihood of a false positive occurring.

Noise is a significant challenge in the near ultrasonic frequency range(e.g., between 18 kHz and 24 kHz) because there are many sources ineveryday environments that produce noises in that range. This is aprimary reason why known ultrasonic proximity detection systems aretypically implemented at much higher frequencies (e.g., above 40 kHz).However, as mentioned above, such techniques come at increased cost andcomplexity due to the need for specialized components capable ofhandling the high frequencies.

Examples disclosed herein overcome the challenges of detecting objectsat frequencies where a lot of noise may exist, while still usingstandard components already incorporated into many computing devices. Insome examples, a robust and error resilient object detection scheme isaccomplished by generating and storing a static environment echo profilefor the environment in which the computing device 100 is located. Astatic environment echo profile represents the echoes 114 associatedwith the acoustic pulses 112 reflected off fixed (e.g., static) objectsin the environment surrounding the computing device 100. An examplestatic environment echo profile 200 based on actual data is shown in theillustrated example of FIG. 2. As shown in the illustrated example, thevery tall peaks 202 in the signal stream correspond to reference signals(e.g., acoustic pulses 112 directly sensed by the microphone 104 withoutbeing reflected). A period of time after each reference signal there aremuch lower intensity peaks 204 corresponding to echoes 114 reflected offof fixed or static objects in the surrounding environment. Therelatively low intensity of the echoes 114 and their distance from thepreceding reference signal is indicative of the objects being at arelatively substantial distance from the computing device 100.

In some examples, the static environment echo profile 200 is generatedas the result of several stages of preprocessing of the audio datacaptured by the microphone 104. For instance, in addition to directlysensing the acoustic pulses 112 (e.g., the reference signals) and theechoes 114, the microphone 104 is likely to pick up other noisesgenerated in the environment surrounding the computing device 100.Accordingly, in some examples, the computing device 100 removessubstantially all humanly audible noises by processing the input signalthrough one or more signal filters. In some examples, the computingdevice 100 processes the input signal using a band pass filter with alower cutoff frequency of 18 kHz and an upper cutoff frequency of 24 kHzto isolate noise information captured within the near ultrasonic rangeas defined above. Further, in some examples, the band pass filter isimplemented with a central frequency of 22 kHz and uses an ellipticinfinite impulse response filter with a 1 decibel passband ripple.Further, in some examples, the output of the band pass filter isanalyzed to identify significant signal peaks in the preprocessed signal(e.g., the peaks 202, 204 of FIG. 2).

Assuming that the computing device 100 does not move relative to itsenvironment, the echoes 114 reflected off static objects in theenvironment should be relatively consistent over time. Thus, as shown inthe illustrated example of FIG. 2, the lower intensity peaks 204 (e.g.,echoes 114) after the first reference signal (the high intensity peak202) are substantially the same (in terms of intensity and relativetiming) as the lower intensity peaks 204 (e.g., echoes 114) followingthe second reference signal. However, if there is a non-static object inthe environment (e.g., a human moving around in the same room as thecomputing device 100), the echoes 114 reflected off the non-staticobject will change in intensity and/or time of detection based onchanges in the movement and/or position of the object relative to thecomputing device 100. Echoes 114 corresponding to non-static objects areidentified as being separate from the static environment echo profileand further analyzed for the possibility of corresponding to an objectwithin the activation region 116 of the computing device 100 asdescribed further below.

In some examples, during an object detection process, the computingdevice 100 generates a full echo profile that is representative of allacoustic pulses 112 and corresponding echoes 114 detected by themicrophone 104 over a most recent period of time. That is, in contrastto the static environment echo profile 200 that represents echoes fromstatic objects in the environment, a full echo profile represents echoesfrom all objects (whether static or not) in the environment. A full echoprofile can be expressed mathematically as follows:

EchoProfile[n]=RefSig[n]+Σ_(m=0) ^(M-1)echo[m]  (Eq. 5)

where echo[m] refers to each particular echo 114 captured by themicrophone 104 from the environment. A similar mathematically expressionmay be provided for the static environment echo profile except that thesummation of echoes 114 is limited to echoes reflected from staticobjects in the environment.

An example full echo profile 300 based on actual data is shown in theillustrated example of FIG. 3. As with the example static environmentecho profile 200 of FIG. 2, the full echo profile 300 includes highintensity peaks 302 corresponding to reference signals (associated withdirectly sensed acoustic pulses 112) and lower intensity peaks 304corresponding to echoes 114 of the acoustic pulses 112. As compared withthe low intensity peaks 204 in FIG. 2, the low intensity peaks 304 inFIG. 3 are considerably larger when viewed as a proportion of theintensity of the associated reference signals (e.g., the high intensitypeaks 302). Further, the low intensity peaks 304 in FIG. 3 arerelatively close to the preceding reference signal. The somewhat higherintensity of the low intensity peaks 304 and the relatively shortduration after the corresponding reference signal is indicative of anecho 114 reflected off an object that is relatively close to thecomputing device 100.

As shown in FIG. 3, the intensity of the low intensity peaks 304 variesconsiderably from one peak to the next indicating that the objectreflecting the corresponding echoes 114 is a non-static object (e.g., anobject that is moving relative to the computing device 100). In thisparticular example, the data reflected in FIG. 3 is based on a personmoving their hand away from and towards an associated computing deviceimplementing the processes disclosed herein. It should be noted thatthere is also some variability in the intensity of the high intensitypeaks 302 corresponding to the reference signals. In ideal conditions,the reference signals should be substantially identical in intensity asdescribed above. However, some variability is expected due to imperfectenvironmental conditions and/or as a result of some measure or errorintroduced by the preprocessing of the input data captured by themicrophone 104. While there is some variability in the intensity of thereference signals, the periodicity of the reference signals issubstantially consistent over time.

In the full echo profile 300, some of the low intensity peaks 304 maycorrespond to echoes 114 reflected off static objects in theenvironment. These same echoes 114 are represented in the staticenvironment echo profile 200. Accordingly, the presence of non-staticobjects in the environment can be identified by comparing andidentifying the differences between the full echo profile 300 and thestatic environment echo profile 200. More particularly, in someexamples, the static environment echo profile is subtracted from thefull echo profile to remove the echoes 114 reflected off static objects.That is, the static signal data represented by the static environmentecho profile is removed from the full echo profile. The output of thiscalculation is referred to herein as a non-static echo profile. Anexample non-static echo profile 400 is shown in FIG. 5. The presence ofany residual echoes 114 in the non-static echo profile based ondifferences (above a certain threshold to account for minor variabilitynoted above) between the static environment echo profile 200 and thefull echo profile 300 serve as a trigger to implement subsequentanalysis for object detection purposes as described more fully below.Thus, in some examples, the static environment echo profile 200 servesas a baseline for comparison with echoes 114 detected by the microphone104 at any particular time to determine when additional processing andanalysis is appropriate. In some examples, when a non-static object isdetected and further processing and analysis is warranted, the furtherprocessing and analysis is based on the non-static echo profile tosimplify the computations by first isolating the echoes 114 associatedwith non-static objects from static objects.

In some situations, the computing device 100 may dynamically monitor andupdate the static environment echo profile 200 in substantially realtime based on changes to static objects in the environment (e.g., therelocation of a chair or other piece of furniture), and/or changes inthe location of the computing device 100 relative to the environment(including the relocation of the computing device to a new environment).In this manner, the computing device 100 is able to adapt to anyparticular environment by updating the static environment echo profileto reflect current environmental conditions to increase the accuracy atwhich non-static objects may be identified and analyzed as describedherein. In some examples, if a static environment echo profile cannot bereliably generated (or updated) due to too much variability in theechoes 114 detected by the microphone 104, the computing device 100 mayenter an error state until a reliable static environment echo profilemay again be generated. In some such examples, the subsequent processingof echo data may be prevented while the device is in the error state toavoid the possibility of an inaccurate detection of an object in thevicinity of the computing device 100.

As mentioned above, once a difference (that satisfies a threshold)between the static environment echo profile and the full echo profilehas been detected as indicative of an echo 114 corresponding to anon-static object, the computing device 100 may initiate subsequentanalysis and processing of the noise information captured by themicrophone 104. In some examples, the computing device 100 mayautomatically switch between different modes while processing the noiseinformation to reduce power consumption. More particularly, in someexamples, when the computing device 100 initially begins analyzing thenoise information, the computing device 100 may operate in a low powerstandby sensing mode. In some examples, the computing device 100performs a relatively course analysis of the echo data in the standbysensing mode to determine whether the non-static object detected basedon the difference between the static environment echo profile and thefull echo profile is located within the activation region 116. If thecomputing device 100 determines that the non-static object is in theactivation region 116, the computing device 100 may then switch to anactive sensing mode in which a more accurate analysis is performed toconfirm or validate the determination made during the standby sensingmode that the non-static object is within the activation region 116. Insome examples, only after the computing device 100 has confirmed thereis an object within the activation region 116 using the analysis of theactive sensing mode does the computing device 100 activate or initiatethe operation associated with the detection of such an object (e.g.,wake up the computing device from a low power idle state).

As outlined above, in some examples, the processing of echo datacaptured by the microphone 104 involves a two stage process that passesthrough a standby sensing mode and an active sensing mode before thecomputing device 100 implements a particular operation in response to adetected object. The different modes associated with the separate stagesin this process serve to increase the power efficiency of the system. Inparticular, while both modes consume relatively little power (e.g., bothmay be implemented while the computing device 100 is in a low powersleep state or idle state), the standby sensing mode consumes less powerthan the active sensing mode. In some examples, the standby sensing modeis more power efficient because the acoustic pulses 112 are generatedless frequently (e.g., spaced apart at longer intervals) during thestandby sensing mode than during the active sensing mode. For example,during the active sensing mode, the speaker 102 may generate eightacoustic pulses 112 every second whereas the speaker may generate fewer(e.g., 4, 2, etc.) acoustic pulses 112 every second during the standbysensing mode. The fewer acoustic pulses 112 in the standby mode reducespower consumption because the speaker 102 is being excited lessfrequently. Further, the standby mode uses less power because themicrophone 104 is collecting less echo data to be processed. While thestandby sensing mode reduces power consumption, the lower timeresolution renders the standby sensing mode less accurate than duringthe active mode. Accordingly, in some examples, once an object withinthe activation region 116 has been detected in the standby mode, thesystem automatically switches to the active mode to confirm the objectdetection is accurate using a higher resolution for increased accuracy.If the active sensing mode does not confirm the presence of the objector the object is removed from within the activation region, thecomputing device 100 may switch back to the standby sensing mode tocontinue monitoring for an object in proximity to the computing device100.

In addition to using echoes 114 based on acoustic pulses 112 generatedat a shorter periodicity, the active mode also includes more complexcomputations than in the standby mode to increase the accuracy andresilience of object detection even in the presence of significantenvironmental noises. More particularly, in some examples, the objectdetection processing during the active stage monitors input noise levelsand abnormal echoes to automatically switch between a lock-in state anda lock-out state to maintain accurate object detection while enablingrelatively quick recovery from error conditions due to, for example,environmental noises that may disrupt the monitoring of the acousticpulses 112 and/or associated echoes 114.

In some examples, the output of the speaker 102 is not synchronized ortimed to the noise information collected by the microphone 104.Accordingly, the system analyzing the noise information does not haveany way to directly identify when an acoustic pulse 112 is senseddirectly by the microphone 104 (i.e., a reference signal) and whennoises captured by the microphone 104 correspond to echoes 114 (or otherenvironmental noise). Accordingly, the lock-out state of the activesensing mode serves to identify reference signals in the noiseinformation that can be used to synchronize the timing of the acousticpulses 112 and the corresponding echoes 114 going forward. In someexamples, the reference signals are detected by analyzing the noiseinformation over time until a repeating signal is identified thatsatisfies criteria corresponding to the repeating acoustic pulses 112.More particular, the criteria that must be satisfied for a signal toconstitute a reference signal includes (1) that the signal repeats witha substantially consistent periodicity corresponding to the timeinterval of successive ones of the acoustic pulses 112 and (2) that therepeating signal has an intensity that is within a threshold of anexpected signal level for the acoustic pulses 112. In some examples, therepeating signal must fall between an upper threshold and a lowerthreshold. In other examples, the repeating signal only needs to exceeda lower threshold that is higher than a maximum intensity expected foran echo 114.

In some examples, identification of the reference signals is based on ananalysis of the non-static echo profile that includes signalscorresponding to the acoustic pulses 112 and echoes 114 reflected fromnon-static objects but excludes echoes 114 of static objects that havebeen subtracted out from a corresponding full echo profile. Because theechoes 114 included in the analysis correspond to non-static objects,the timing at which subsequent ones of the echoes 114 are detected willnot be consistent. As a result, the echoes 114 will not satisfy thefirst criterion of a consistent periodicity corresponding to the timeinterval between separate acoustic pulses. By contrast, because theacoustic pulses 112 are repeated at consistent intervals and senseddirectly by the microphone 104, the acoustic pulses can be recognized asthe reference signals as outlined above. In some examples, thecomputations of the analysis during the standby mode are simplified byignoring the first criterion used during the active mode. That is, whileboth a consistent periodicity and expected intensity of signals are usedto identify and track reference signals in the active mode, individualreference signals are detected independently based on their intensitywithout reference to their relative spacing during the standby mode.This simplified approach during the standby mode provides a roughanalysis for detecting objects that may be within the activation regionthat can then be confirmed or validated by the more robust and accuratemethodology used during the active mode. Alternatively, in someexamples, the analysis during the standby mode may identify thereference signals based on their repeating nature at a consistentperiodicity in a manner similar to the active mode. However, in somesuch examples, the references signals may be identified with a lowerthreshold of confidence such that the process may be performed withreduced computational power relative to the active mode.

When the computing device 100 is in the active mode and has identifiedthe repeating reference signals (corresponding to the acoustic pulses112) as described above, the device may be said to have “locked-in” tothe reference signals and, therefore, may switch to the lock-in state.Typically, the lock-out state, during which the computing device 100seeks for and identifies the reference signals, lasts for a relativelyshort duration (e.g., less than a few seconds or even shorter)corresponding to a sufficient number of repetitions of the acousticpulses 112 to enable the device to detect the repeating sequence toverify the first criterion mentioned above. The particular duration forthe lock-out state may depend on the periodicity of the acoustic pulses112 and the amount and/or nature of noise in the environment. Forinstance, as shown in the example non-static echo profile 400 of FIG. 4,the first seven reference signals correspond to a lock-out period 402and then all reference signals thereafter are associated with a lock-inperiod 404.

In some examples, the first reference signal positively identified bythe computing device 100 as satisfying the criteria indicative of areference signal in the active mode is referred to herein as the pilotreference signal or simply pilot signal as identified by referencenumeral 406 in FIG. 4. The pilot reference signal 406 is used as areference to identify and validate subsequent reference signalsidentified while the computing device 100 is operating in the lock-instate. That is, even after the reference signals have been identifiedwithin the non-static echo profile, the computing device 100 continuesto monitor and detect subsequent reference signals to verify that thesystem remains synchronized to the timing at which the speaker 102produces the acoustic pulses 112 by detecting subsequent referencesignals at the expected frequency and intensity (within a certainthreshold) corresponding to parameters defined by the pilot referencesignal 406. As long as the computing device 100 is able to identify andverify each successive reference signal, the device 100 remains in thelock-in state. If the computing device 100 is unable to identify areference signal at the expected point in time (based on the fixedperiodicity of the signals), the computing device 100 may revert to thelock-out state to again seek for the reference signals before returningto the lock-in state. In some examples, the computing device 100 maywait a threshold period of time after failing to identify an expectedreference signal (e.g., the duration of a particular number (e.g., 2, 3,5, etc.) of intervals of acoustic pulses 112) on the assumption that themissing reference signal(s) were lost due to an abnormal noise in theenvironment but can be detected again at the time expected for asubsequent reference signal.

Aside from continuing to identify subsequent reference signals, thecomputing device 100 also performs object depth calculations on theechoes 114 contained in the non-static echo profile being analyzed. Asmentioned above, the time delay between an acoustic pulse 112 (e.g., areference signal) and an echo 114 of the acoustic pulse 112 isproportional to the distance of the object reflecting the echo 114. As aresult, by determining the time between a reference signal and afollowing echo, the computing device 100 may determine the distance ofan associated object from the computing device 100. This can beexpressed mathematically as follows:

EchoDuration[m]=EchoTime[m]−ReferenceTime[n]  (Eq. 6)

EchoDepth[m]=EchoDuration[m]/DepthScaleFactor  (Eq. 7)

where ReferenceTime[n] is the time index of the reference signalpreceding the particular echo 114 being analyzed, and EchoTime[m] is thetime index of the particular echo 114. For the above equations to work,it is assumed that EchoTime[m] is greater than ReferenceTime[n], whichnecessarily assumes that EchoDuration[m] is greater than 0. In someexamples, when the calculated distance of an object (e.g., EchoDepth[m])is less than the threshold distance 118 for the activation region 116,the computing device 100 may generate an output that causes theactivation or initiation of an operation associated with an object beingdetected in the activation region 116.

Experimental testing has shown that teachings disclosed herein provideaccurate and robust results regardless of the level or nature of noisein the environment. Particular test results are shown in the table 500of FIG. 5. As shown in the table 500, accuracy remained at or above 90%across all different types of noise. Further, false positives did notoccur under any type of noise conditions. As mentioned above, examplesdisclosed herein are specifically designed to reduce (e.g., prevent)false positives from occurring because a false positive means that anobject was incorrectly detected as being within the activation region116 of FIG. 1, thereby incorrectly triggering the operation associatedwith the presence of an object.

FIG. 6 illustrates an example implementation of the example computingdevice 100 of FIG. 1. As shown in the illustrated example, the computingdevice 100 includes the example speaker 102, the example microphone 104,an example signal generator 602, an example echo profile generator 604(that includes an example signal filter analyzer 606, an example signalsmoothening analyzer 608, and an example signal peak detector 610), anexample environment profile analyzer 612, an example object detectionanalyzer 614 (that includes an example power state controller 616, anexample echo profile comparator 618, an example proximity calculator620, an example reference signal identifier 622, and an example timer624), an example activation operation controller 626, and an exampledatabase 628.

The example signal generator 602 controls the excitation of the speaker102 to produce the acoustic pulses 112 at fixed intervals correspondingto the current sensing mode (e.g., active or standby) in which thecomputing device 100 is operating. In some examples, the signalgenerator 602 generates acoustic pulses based on Equations 1-4 outlinesabove. In some examples, to reduce computational burdens, the signalgenerator 602 simply causes a recording of the acoustic pulses 112 to beplayed at the relevant periodicity. In such examples, the recording maybe stored in the example database 628.

The example echo profile generator 604 of FIG. 6 performs thepreprocessing of noise information captured by the microphone 104 togenerate echo profiles associated with the current circumstances of thecomputing device 100. As shown in the illustrated example, the signalfilter analyzer 606 processes the noise information based on one or morefilters. In some examples, the filters include a band pass filter toremove all data outside of the near ultrasonic range (e.g., between 18kHz and 24 kHz). The example signal smoothening analyzer 608 analyzesthe noise information to define the signal envelope for the signalsamples contained in the noise information. The example signal peakdetector 610 analyzes the noise information to identify significantpeaks within the noise information. The output of the echo profilegenerator 604 corresponds to the full echo profile associated with thecurrent environment in which the computing device 100 is located. Insome examples, the full echo profile is stored in the example database628.

In some examples, the environment profile analyzer 612 uses the fullecho profile to generate a static environment echo profile that islimited to reference signals and echoes 114 reflected off of staticobjects in the environment. In some examples, the static environmentecho profile is stored in the example database 628. In some examples,when there are no non-static objects in the environment, the staticenvironment echo profile is the same as the full echo profile.Accordingly, in some examples, the environment profile analyzer 612 maysimply store the full echo profile as the static environment echo afterconfirming there are no non-static objects represented in the profile.In other examples, where non-static objects are present in theenvironment, the example environment profile analyzer 612 may identifyand remove echoes 114 corresponding to the non-static objects beforestoring the static environment echo profile. Further, in some examples,the environment profile analyzer 612 monitors changes to the full echoprofile (as output by the echo profile generator 604) to determinewhether there are changes to the static environment. If so, theenvironment profile analyzer 612 may update the static environment echoprofile. In some examples, the circumstances associated with thecomputing device 100 at any given point in time may be such that thestatic environment echo profile cannot be reliably generated and/orupdated due, for example, to frequent changes in the static environmentand/or overly noisy conditions. In some such examples, the environmentprofile analyzer 612 may enter an error state to prevent inaccuratedepth sensing and processing to occur based on an invalid staticenvironment echo profile.

The example object detection analyzer 614 analyzes echo profilesgenerated by the echo profile generator 604 and the environment profileanalyzer 612 to identify objects within the vicinity of the computingdevice 100. More particular, in some examples, the object detectionanalyzer 614 is interested in determining whether an object with withinthe activation region 116 of the computing device 100. As describedabove, in some examples, object detection may be done in two stagescorresponding to different power modes for the object detection analyzerincluding a standby sensing mode and an active sensing mode. In theillustrated example, the power state controller 616 determines andcontrols when the object detection analyzer 614 is to operate in thestandby mode and when to operate in the active mode. The example echoprofile comparator 618 compares the current full echo profile with thecurrent static echo profile to identify any differences. Differencesbetween the full echo profile and the current static echo profile may beindicative of a non-static object within the environment. Accordingly,when differences are identified, the echo profile comparator 618 causessubsequent processing and analysis to confirm whether the non-staticobject is within the activation region 116. In some examples, the echoprofile comparator 618 subtracts the static environment echo profilefrom the full echo profile to generate a non-static echo profile that isused during the subsequent analysis and processing.

The example proximity calculator 620 determines a proximity or distanceof an object reflecting an echo 114 represented in the non-static echoprofile based on the duration of time between a particular referencesignal in the profile and a following echo signal. The example referencesignal identifier 622 identifies and tracks reference signals as theyoccur in the non-static echo profile to maintain synchronization withthe timing of when the acoustic pulses 112 (associated with thereference signals) are generated by the speaker 102. As described above,the active mode is associated with two internal states including thelock-in state and the lock-out state. The example reference signalidentifier 622 determines when and whether the object detection analyzer614 is to switch between the lock-in and lock-out states based onwhether the reference signals can be identified from the input stream ofthe microphone 104. In some examples, switching from the lock-in stateto the lock-out state after the reference signals are lost is based onthe elapsing of a threshold period of time determined by the exampletimer 624.

The example activation operation controller 626 implements or causes tobe implemented an operation in the computing device 100 in response tothe object detection analyzer 614 determining an object is within theactivation region 116 of the computing device 100. In some examples, theoperation includes waking up the computing device 100 from a low powersleep state or idle state to a full power active state.

While an example manner of implementing the computing device 100 of FIG.1 is illustrated in FIG. 6, one or more of the elements, processesand/or devices illustrated in FIG. 6 may be combined, divided,re-arranged, omitted, eliminated and/or implemented in any other way.Further, the example speaker 102, the example microphone 104, theexample signal generator 602, the example echo profile generator 604,the example signal filter analyzer 606, the example signal smootheninganalyzer 608, the example signal peak detector 610, the exampleenvironment profile analyzer 612, the example object detection analyzer614, the example power state controller 616, the example echo profilecomparator 618, the example proximity calculator 620, the examplereference signal identifier 622, the example timer 624, the exampleactivation operation controller 626, the example database 628 and/or,more generally, the example computing device 100 of FIG. 1 may beimplemented by hardware, software, firmware and/or any combination ofhardware, software and/or firmware. Thus, for example, any of theexample speaker 102, the example microphone 104, the example signalgenerator 602, the example echo profile generator 604, the examplesignal filter analyzer 606, the example signal smoothening analyzer 608,the example signal peak detector 610, the example environment profileanalyzer 612, the example object detection analyzer 614, the examplepower state controller 616, the example echo profile comparator 618, theexample proximity calculator 620, the example reference signalidentifier 622, the example timer 624, the example activation operationcontroller 626, the example database 628 and/or, more generally, theexample computing device 100 could be implemented by one or more analogor digital circuit(s), logic circuits, programmable processor(s),programmable controller(s), graphics processing unit(s) (GPU(s)),digital signal processor(s) (DSP(s)), application specific integratedcircuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or fieldprogrammable logic device(s) (FPLD(s)). When reading any of theapparatus or system claims of this patent to cover a purely softwareand/or firmware implementation, at least one of the example speaker 102,the example microphone 104, the example signal generator 602, theexample echo profile generator 604, the example signal filter analyzer606, the example signal smoothening analyzer 608, the example signalpeak detector 610, the example environment profile analyzer 612, theexample object detection analyzer 614, the example power statecontroller 616, the example echo profile comparator 618, the exampleproximity calculator 620, the example reference signal identifier 622,the example timer 624, the example activation operation controller 626,and/or the example database 628 is/are hereby expressly defined toinclude a non-transitory computer readable storage device or storagedisk such as a memory, a digital versatile disk (DVD), a compact disk(CD), a Blu-ray disk, etc. including the software and/or firmware.Further still, the example computing device 100 of FIG. 1 may includeone or more elements, processes and/or devices in addition to, orinstead of, those illustrated in FIG. 6, and/or may include more thanone of any or all of the illustrated elements, processes and devices. Asused herein, the phrase “in communication,” including variationsthereof, encompasses direct communication and/or indirect communicationthrough one or more intermediary components, and does not require directphysical (e.g., wired) communication and/or constant communication, butrather additionally includes selective communication at periodicintervals, scheduled intervals, aperiodic intervals, and/or one-timeevents.

A flowchart representative of example hardware logic, machine readableinstructions, hardware implemented state machines, and/or anycombination thereof for implementing the computing device 100 of FIGS. 1and/or 6 is shown in FIGS. 7-10. The machine readable instructions maybe one or more executable programs or portion(s) of an executableprogram for execution by a computer processor such as the processor 1112shown in the example processor platform 1100 discussed below inconnection with FIG. 11. The program may be embodied in software storedon a non-transitory computer readable storage medium such as a CD-ROM, afloppy disk, a hard drive, a DVD, a Blu-ray disk, or a memory associatedwith the processor 1112, but the entire program and/or parts thereofcould alternatively be executed by a device other than the processor1112 and/or embodied in firmware or dedicated hardware. Further,although the example program is described with reference to theflowcharts illustrated in FIGS. 7-10, many other methods of implementingthe example computing device 100 may alternatively be used. For example,the order of execution of the blocks may be changed, and/or some of theblocks described may be changed, eliminated, or combined. Additionallyor alternatively, any or all of the blocks may be implemented by one ormore hardware circuits (e.g., discrete and/or integrated analog and/ordigital circuitry, an FPGA, an ASIC, a comparator, anoperational-amplifier (op-amp), a logic circuit, etc.) structured toperform the corresponding operation without executing software orfirmware.

The machine readable instructions described herein may be stored in oneor more of a compressed format, an encrypted format, a fragmentedformat, a packaged format, etc. Machine readable instructions asdescribed herein may be stored as data (e.g., portions of instructions,code, representations of code, etc.) that may be utilized to create,manufacture, and/or produce machine executable instructions. Forexample, the machine readable instructions may be fragmented and storedon one or more storage devices and/or computing devices (e.g., servers).The machine readable instructions may require one or more ofinstallation, modification, adaptation, updating, combining,supplementing, configuring, decryption, decompression, unpacking,distribution, reassignment, etc. in order to make them directly readableand/or executable by a computing device and/or other machine. Forexample, the machine readable instructions may be stored in multipleparts, which are individually compressed, encrypted, and stored onseparate computing devices, wherein the parts when decrypted,decompressed, and combined form a set of executable instructions thatimplement a program such as that described herein. In another example,the machine readable instructions may be stored in a state in which theymay be read by a computer, but require addition of a library (e.g., adynamic link library (DLL)), a software development kit (SDK), anapplication programming interface (API), etc. in order to execute theinstructions on a particular computing device or other device. Inanother example, the machine readable instructions may need to beconfigured (e.g., settings stored, data input, network addressesrecorded, etc.) before the machine readable instructions and/or thecorresponding program(s) can be executed in whole or in part. Thus, thedisclosed machine readable instructions and/or corresponding program(s)are intended to encompass such machine readable instructions and/orprogram(s) regardless of the particular format or state of the machinereadable instructions and/or program(s) when stored or otherwise at restor in transit.

As mentioned above, the example processes of FIGS. 7-10 may beimplemented using executable instructions (e.g., computer and/or machinereadable instructions) stored on a non-transitory computer and/ormachine readable medium such as a hard disk drive, a flash memory, aread-only memory, a compact disk, a digital versatile disk, a cache, arandom-access memory and/or any other storage device or storage disk inwhich information is stored for any duration (e.g., for extended timeperiods, permanently, for brief instances, for temporarily buffering,and/or for caching of the information). As used herein, the termnon-transitory computer readable medium is expressly defined to includeany type of computer readable storage device and/or storage disk and toexclude propagating signals and to exclude transmission media.

“Including” and “comprising” (and all forms and tenses thereof) are usedherein to be open ended terms. Thus, whenever a claim employs any formof “include” or “comprise” (e.g., comprises, includes, comprising,including, having, etc.) as a preamble or within a claim recitation ofany kind, it is to be understood that additional elements, terms, etc.may be present without falling outside the scope of the correspondingclaim or recitation. As used herein, when the phrase “at least” is usedas the transition term in, for example, a preamble of a claim, it isopen-ended in the same manner as the term “comprising” and “including”are open ended. The term “and/or” when used, for example, in a form suchas A, B, and/or C refers to any combination or subset of A, B, C such as(1) A alone, (2) B alone, (3) C alone, (4) A with B, (5) A with C, (6) Bwith C, and (7) A with B and with C. As used herein in the context ofdescribing structures, components, items, objects and/or things, thephrase “at least one of A and B” is intended to refer to implementationsincluding any of (1) at least one A, (2) at least one B, and (3) atleast one A and at least one B. Similarly, as used herein in the contextof describing structures, components, items, objects and/or things, thephrase “at least one of A or B” is intended to refer to implementationsincluding any of (1) at least one A, (2) at least one B, and (3) atleast one A and at least one B. As used herein in the context ofdescribing the performance or execution of processes, instructions,actions, activities and/or steps, the phrase “at least one of A and B”is intended to refer to implementations including any of (1) at leastone A, (2) at least one B, and (3) at least one A and at least one B.Similarly, as used herein in the context of describing the performanceor execution of processes, instructions, actions, activities and/orsteps, the phrase “at least one of A or B” is intended to refer toimplementations including any of (1) at least one A, (2) at least one B,and (3) at least one A and at least one B.

The example process of FIG. 7 begins at block 702 where the examplepower state controller 616 determines whether the object detectionanalyzer 614 is in the standby mode or the active mode. In someexamples, when the process first begins, the object detection analyzer614 begins in the standby mode. If the object detection analyzer 614 isin the standby mode, control advances to block 704 where the speaker 102produces acoustic pulses (e.g., the acoustic pulses 112) at a longperiodicity. As used in this context, the term “long periodicity” isused in a relative sense to the “short periodicity” discussed at block706. As described above, the acoustic pulses 112 may be generated basedon signals from the example signal generator 602. In some examples, thelong periodicity of the acoustic pulses 112 in the standby modecorresponds to a period of fixed interval between successive pulses of250 milliseconds or four times per second. In other examples, the periodmay be 500 milliseconds or twice per second. After producing theacoustic pulses 112 at block 704, control advances to block 708.Returning to block 702, if the object detection analyzer 614 is in theactive mode, control advances to block 706 where the speaker 102produces acoustic pulses 112 at a short periodicity. In some examples,the short periodicity corresponds to a period or fixed interval betweenpulses of 125 milliseconds or eight times per second. After producingthe acoustic pulses 112 at block 706, control advances to block 708.

At block 708, the example microphone captures noise information fromenvironment including the acoustic pulses 112 and corresponding echoes(e.g., the echoes 114). At block 710, the example echo profile generator604 generates and/or updates a full echo profile (e.g., the full echoprofile 300 of FIG. 3) based on the acoustic pulses 112 and thecorresponding echoes 114. Further detail regarding the implementation ofblock 710 is provided below in connection with FIG. 8. At block 712, theexample environment profile analyzer 612 determines whether a staticenvironment echo profile (e.g., the static environment echo environment200 of FIG. 2) is available and suitable for the current circumstances.If not, control advances to block 714 where the example environmentprofile analyzer 612 determines whether a suitable static environmentecho profile can be generated based on current circumstances. If not,the example environment profile analyzer 612 enters an error state andprevents the process from proceeding by passing control back to block702. If a suitable static environment echo profile 200 can be generated(block 714), control advances to block 716 where the example environmentprofile analyzer 612 generates and/or updates the static environmentecho profile 200. Returning to block 712, if the static environment echoprofile 200 is available and suitable for the current circumstances,control advances directly to block 716 to update the static environmentecho profile 200. In some such examples, if the currently availablestatic environment echo profile 200 does not need updating, block 716may be skipped.

At block 718, the example power state controller 616 determines whetherthe object detection analyzer 614 is in standby mode or active mode. Ifthe object detection analyzer 614 is in the standby mode, controladvances to block 720 where the example object detection analyzer 614analyzes the data in the standby mode. Further detail regarding theimplementation of block 720 is provided below in connection with FIG. 9.If the object detection analyzer 614 is in the active mode, controladvances to block 722 where the example object detection analyzer 614analyzes the data in the active mode. Further detail regarding theimplementation of block 722 is provided below in connection with FIG.10. After the completion of blocks 720 and 722 (described furtherbelow), control returns to block 702 to continue the example process.

FIG. 8 illustrates an example implementation of block 710 of FIG. 7 togenerate and/or update a full echo profile. The example process of FIG.8 begins at block 802 where the example signal filter analyzer 606processes the captured noise information through a band pass filter. Atblock 804, the example signal smoothening analyzer 608 applies a signalsmoothener to the filtered noise information. At block 806, the examplesignal peak detector 610 identifies peaks in the processed signal.Thereafter, the example process of FIG. 8 ends and returns to continuewith the process of FIG. 7.

FIG. 9 illustrates an example implementation of block 720 of FIG. 7 toanalyze data in the standby mode. The example process of FIG. 9 beginsat block 902 where the example echo profile comparator 618 generates anon-static echo profile based on the differences between the staticenvironment echo profile 200 and the full echo profile 300. In someexamples, the non-static echo profile corresponds to the staticenvironment echo profile subtracted from the full echo profile. At block904, the example echo profile comparator 618 determines whether thenon-static echo profile includes at least one residual echo indicativeof a non-static object. If not, the example process of FIG. 9 ends andreturns to continue the process of FIG. 7. If so, control advances toblock 906 where the example proximity calculator 620 calculates thedistance of the non-static object based on the time delay between themost recently detected reference signal and the at least one echo in thenon-static echo profile. At block 908, the example proximity calculator620 determines whether the distance of the object is within anactivation region (e.g., the activation region 116 of FIG. 1). In someexamples, the distance of the object is determined to be within theactivation region when the distance is less than a threshold distance118 defining the activation region 116. If the distance of the object isnot within the activation region 116, the example process of FIG. 9 endsand returns to continue the process of FIG. 7. If the distance of theobject is within the activation region 116, control advances to block910 where the example power state controller 616 transitions the objectdetection analyzer 614 to the active mode. Thereafter, the exampleprocess of FIG. 9 ends and returns to continue with the process of FIG.7.

FIG. 10 illustrates an example implementation of block 722 of FIG. 7 toanalyze data in the active mode. The example process of FIG. 10 beginsat block 1002 where the example reference signal identifier 622determines whether repeating reference signals have been identified. Ifthe reference signal identifier 622 determines that repeating referencesignals have not been identified (indicative of the lock-out statedescribed above), control advances to block 1004 where the examplereference signal identifier 622 analyzes the non-static echo profile toidentify repeating reference signals satisfying the criteria associatedwith the acoustic pulses 112. As described above, in some examples, thecriteria include that the intensity of the signals satisfy a thresholdand that the signals have a fixed periodicity corresponding to theinterval between the acoustic pulses 112. If, at block 1002, thereference signal identifier 622 determines that repeating referencesignals have been identified (indicative of the lock-in state describedabove), control advances to block 1006 where the example referencesignal identifier 622 determines whether a threshold period of time haselapsed since the last detected occurrence of the repeating referencesignals. In some examples, the threshold period of time may be longerthan the fixed interval between successive ones of the acoustic pulses112. As such, the threshold period of time having elapsed indicates thatone or more references signals was not detected when expected to thepoint where the object detection analyzer 614 needs to revert to thelock-out state to again search for the reference signals. Accordingly,in such a situation, control advance to block 1004 to again identify therepeating reference signals.

At block 1008, the example reference signal identifier 622 determineswhether the repeating reference signals can be identified based on thecurrent non-static echo profile. In some examples, there may not beenough data (e.g., enough cycles of the acoustic pulse 112) to reliableidentify the reference signals. Thus, if the repeating reference signalscannot be identified, the example process of FIG. 10 ends and returns tocontinue the process of FIG. 7 to gather additional noise informationincluding additional acoustic pulses. If the repeating reference signalscan be identified at block 1008, control advances to block 1010 wherethe example database stores parameters defining the repeating referencesignals. In some examples, the parameters are defined by a pilotreference signal (e.g., the pilot reference signal 406). Thereafter,control advances to block 1012. Returning to block 1006, if thethreshold period of time has not elapsed, control advances directly toblock 1012.

At block 1012, the example proximity calculator 620 calculates thedistance of the non-static object based on the time delay between thereference signals and the corresponding echoes 114 in the non-staticecho profile. In some examples, multiple distance calculations areperformed for multiple successive echoes 114 associated with multiplesuccessive reference signals. The multiple data points serve to increasethe accuracy and reliability of the output. Furthermore, as this processis associated with the active mode when the acoustic pulses 112 areproduced at a relatively short periodicity, there is a smaller timeresolution to further increase the accuracy of the analysis. At block1014, the example proximity calculator 620 determines whether thedistance of the object is within the activation region 116. If so,control advances to block 1016 where the example activation operationcontroller 626 generates an output to initiate an operation on thecomputing device 100 associated with object being detected within theactivation region. In some examples, the operation includes waking upthe computing device 100 from a sleep or idle state.

At block 1018, it is determined whether to continue the process. If so,the example process of FIG. 9 ends and returns to continue with theprocess of FIG. 7. Otherwise, the example process of FIG. 9 ends as doesthe higher level process of FIG. 7. Returning to block 1014, if theexample proximity calculator 620 determines that the distance of theobject is not within the activation region 116, control advances toblock 1020 where the example power state controller 616 transitions theobject detection analyzer 614 to the standby mode. Thereafter, theexample process of FIG. 9 ends and returns to continue with the processof FIG. 7.

FIG. 11 is a block diagram of an example processor platform 1100structured to execute the instructions of FIGS. 7-10 to implement thecomputing device 100 of FIGS. 1 and/or 6. The processor platform 1100can be, for example, a server, a personal computer, a workstation, aself-learning machine (e.g., a neural network), a mobile device (e.g., acell phone, a smart phone, a tablet such as an iPad), a personal digitalassistant (PDA), an Internet appliance, a headset or other wearabledevice, or any other type of computing device.

The processor platform 1100 of the illustrated example includes aprocessor 1112. The processor 1112 of the illustrated example ishardware. For example, the processor 1112 can be implemented by one ormore integrated circuits, logic circuits, microprocessors, GPUs, DSPs,or controllers from any desired family or manufacturer. The hardwareprocessor may be a semiconductor based (e.g., silicon based) device. Inthis example, the processor implements the example signal generator 602,the example echo profile generator 604, the example signal filteranalyzer 606, the example signal smoothening analyzer 608, the examplesignal peak detector 610, the example environment profile analyzer 612,the example object detection analyzer 614, the example power statecontroller 616, the example echo profile comparator 618, the exampleproximity calculator 620, the example reference signal identifier 622,the example timer 624, and the example activation operation controller626.

The processor 1112 of the illustrated example includes a local memory1113 (e.g., a cache). The processor 1112 of the illustrated example isin communication with a main memory including a volatile memory 1114 anda non-volatile memory 1116 via a bus 1118. The volatile memory 1114 maybe implemented by Synchronous Dynamic Random Access Memory (SDRAM),Dynamic Random Access Memory (DRAM), RAMBUS® Dynamic Random AccessMemory (RDRAM®) and/or any other type of random access memory device.The non-volatile memory 1116 may be implemented by flash memory and/orany other desired type of memory device. Access to the main memory 1114,1116 is controlled by a memory controller.

The processor platform 1100 of the illustrated example also includes aninterface circuit 1120. The interface circuit 1120 may be implemented byany type of interface standard, such as an Ethernet interface, auniversal serial bus (USB), a Bluetooth® interface, a near fieldcommunication (NFC) interface, and/or a PCI express interface.

In the illustrated example, one or more input devices 1122 are connectedto the interface circuit 1120. The input device(s) 1122 permit(s) a userto enter data and/or commands into the processor 1112. The inputdevice(s) can be implemented by, for example, an audio sensor, amicrophone (e.g., the microphone 104 of FIGS. 1 and/or 6), a camera(still or video), a keyboard, a button, a mouse, a touchscreen, atrack-pad, a trackball, isopoint and/or a voice recognition system.

One or more output devices 1124 are also connected to the interfacecircuit 1120 of the illustrated example. The output devices 1124 can beimplemented, for example, by display devices (e.g., a light emittingdiode (LED), an organic light emitting diode (OLED), a liquid crystaldisplay (LCD), a cathode ray tube display (CRT), an in-place switching(IPS) display, a touchscreen, etc.), a tactile output device, a printerand/or speaker (e.g., the speaker 102 of FIGS. 1 and/or 6). Theinterface circuit 1120 of the illustrated example, thus, typicallyincludes a graphics driver card, a graphics driver chip and/or agraphics driver processor.

The interface circuit 1120 of the illustrated example also includes acommunication device such as a transmitter, a receiver, a transceiver, amodem, a residential gateway, a wireless access point, and/or a networkinterface to facilitate exchange of data with external machines (e.g.,computing devices of any kind) via a network 1126. The communication canbe via, for example, an Ethernet connection, a digital subscriber line(DSL) connection, a telephone line connection, a coaxial cable system, asatellite system, a line-of-site wireless system, a cellular telephonesystem, etc.

The processor platform 1100 of the illustrated example also includes oneor more mass storage devices 1128 for storing software and/or data.Examples of such mass storage devices 1128 include floppy disk drives,hard drive disks, compact disk drives, Blu-ray disk drives, redundantarray of independent disks (RAID) systems, and digital versatile disk(DVD) drives. In this example, the mass storage device 1128 implementsthe example database 628.

The machine executable instructions 1132 of FIGS. 7-10 may be stored inthe mass storage device 1128, in the volatile memory 1114, in thenon-volatile memory 1116, and/or on a removable non-transitory computerreadable storage medium such as a CD or DVD.

From the foregoing, it will be appreciated that example methods,apparatus and articles of manufacture have been disclosed that enablethe robust and error resilient detection of objections within thevicinity of a computing device based on near ultrasonic sound waves(e.g., at frequencies ranging between 18 kHz and 24 kHz) despite thepresence of environmental noises that are common at such frequencies.Further, examples disclosed herein are able to achieve reliably resultsusing standard speakers, microphones, and processing circuitry commonlyused in many computing devices today, thereby reducing costs relative toother methodologies that require specialized components. Further,examples disclosed herein are more power efficient than other knownmethodologies, thereby enabling examples disclosed herein to beimplemented on a computing device that is in a low power idle state orsleep state. The disclosed methods, apparatus and articles ofmanufacture improve the efficiency of using a computing device byimplementing an adaptive multi-stage objection detection scheme thatautomatically switches between a low power and low compute standby modeand a slightly higher power and higher compute active mode (though stillsufficiently low powered for implementation while the device is in aninactive sleep state). The disclosed methods, apparatus and articles ofmanufacture are accordingly directed to one or more improvement(s) inthe functioning of a computer.

Example methods, apparatus, systems, and articles of manufacture todetect proximity of objects to computing devices using near ultrasonicsound waves are disclosed herein. Further examples and combinationsthereof include the following:

Example 1 includes an apparatus comprising a signal generator to cause aspeaker of a computing device to produce a series of pulses, successiveones of the pulses spaced at fixed intervals, ones of the pulses havinga central frequency between 18 kHz and 24 kHz, an echo profile generatorto process noise information sensed by a microphone of the computingdevice, the noise information including the pulses and echoes of thepulses reflected off objects in a vicinity of the computing device, andan object detection analyzer to determine whether a first object iswithin an activation region associated with the computing device basedon the pulses and the echoes sensed by the microphone.

Example 2 includes the apparatus of example 1, further including anactivation operation controller to, in response to the detection of thefirst object within the activation region, implement an operation in thecomputing device.

Example 3 includes the apparatus of example 2, wherein the operationincludes transitioning the computing device from a first state to asecond state, the first state being a lower power state than the secondstate.

Example 4 includes the apparatus of any one of examples 1-3, furtherincluding an environment profile analyzer to generate a staticenvironment echo profile based on ones of the echoes reflected offstatic objects in the vicinity of the computing device, the objectdetection analyzer to compare the echoes to the static environment echoprofile, and identify a presence of the first object based on thecomparison.

Example 5 includes the apparatus of example 4, wherein the environmentprofile analyzer is to identify a change in the environment based on theechoes sensed by the microphone, and update the static environment echoprofile based on the change in the environment.

Example 6 includes the apparatus of any one of examples 4 or 5, whereinthe echo profile generator is to generate a full echo profile based onthe pulses and the corresponding echoes sensed by the microphone, theobject detection analyzer is to remove static data corresponding to thestatic environment echo profile from the full echo profile to generate anon-static echo profile, and determine whether the first object iswithin the activation region based on the non-static echo profile.

Example 7 includes the apparatus of any one of examples 1-6, wherein thesignal generator is to cause the speaker to produce successive ones ofthe pulses spaced at first fixed intervals during a first time periodand to, in response to the object detection analyzer detecting the firstobject within the activation region during the first time period, causethe speaker to produce additional ones of the pulses spaced at secondfixed intervals during a second time period after the first time period,the second fixed intervals being shorter than the first fixed intervals,the object detection analyzer to verify the first object is within theactivation region based on the pulses and corresponding echoes sensedduring the second time period.

Example 8 includes the apparatus of example 7, wherein the signalgenerator is to, in response to the object detection analyzer no longerdetecting the first object within the activation region during thesecond time period, cause the speaker to produce additional ones of thepulses spaced at the first fixed intervals during a third time periodafter the second time period.

Example 9 includes the apparatus of any one of examples 1-8, wherein theecho profile generator is to generate a full echo profile based on thepulses and the corresponding echoes sensed by the microphone, andidentify peaks in the full echo profile, different ones of the peakscorresponding to either the pulses or the corresponding echoes, theobject detection analyzer to identify repeating reference signals basedon the peaks identified in the full echo profile, the repeatingreference signals corresponding to the pulses sensed by the microphone,identify an echo signal between separate occurrences of the repeatingreference signals, the echo signal corresponding to one of the echoes,and determine whether the first object is within the activation regionbased on a time difference between the echo signal and a preceding oneof the repeating reference signals.

Example 10 includes the apparatus of example 9, wherein the objectdetection analyzer is to identify the repeating reference signals byidentifying a first subset of the peaks associated with an intensitythat satisfy a threshold, and identifying a second subset of the peaksfrom among the first subset that are detected at a periodicitycorresponding to the fixed intervals of the pulses.

Example 11 includes the apparatus of any one of examples 9 or 10,wherein the object detection analyzer is to identify the repeatingreference signals at a first point in time, verify whether subsequentones of the peaks identified after the first point in time areassociated with an intensity and a periodicity corresponding tosubsequent occurrences of the repeating reference signals, in responseto verification that the subsequent ones of the peaks correspond to thesubsequent occurrences of the repeating reference signals, determinewhether the first object is within the activation region, and inresponse to an inability to verify that the subsequent ones of the peakscorrespond to the subsequent occurrences of the repeating referencesignals, inhibit the determination of whether the first object is withinthe activation region until the repeating reference signals are againidentified at a second point in time.

Example 12 includes a method comprising producing, via a speaker of acomputing device, a series of pulses, successive ones of the pulsesspaced at fixed intervals, ones of the pulses having a central frequencybetween 18 kHz and 24 kHz, sensing, via a microphone of the computingdevice, the pulses and echoes of the pulses reflected off objects in avicinity of the computing device, and determining, by executing aninstruction with at least one processor, whether a first object iswithin an activation region associated with the computing device basedon the pulses and the echoes sensed by the microphone.

Example 13 includes the method of example 12, further including, inresponse to the determination of the first object being within theactivation region, implementing an operation in the computing device.

Example 14 includes the method of example 13, wherein implementing theoperation includes transitioning the computing device from a first stateto a second state, the first state being a lower power state than thesecond state.

Example 15 includes the method of any one of examples 12-14, furtherincluding generating a static environment echo profile based on ones ofthe echoes reflected off static objects in the vicinity of the computingdevice, comparing the echoes to the static environment echo profile, andidentifying a presence of the first object based on the comparison.

Example 16 includes the method of example 15, further includingidentifying a change in the environment based on the echoes sensed bythe microphone, and updating the static environment echo profile basedon the change in the environment.

Example 17 includes the method of any one of examples 15 or 16, furtherincluding generating a full echo profile based on the pulses and thecorresponding echoes sensed by the microphone, removing static datacorresponding to the static environment echo profile from the full echoprofile to generate a non-static echo profile, and determining whetherthe first object is within the activation region based on the non-staticecho profile.

Example 18 includes the method of any one of examples 12-17, furtherincluding producing successive ones of the pulses spaced at first fixedintervals during a first time period, detecting the first object withinthe activation region based on the pulses and corresponding echoessensed during the first time period, in response to detecting the firstobject within the activation region during the first time period,producing additional ones of the pulses spaced at second fixed intervalsduring a second time period after the first time period, the secondfixed intervals being shorter than the first fixed intervals, andverifying the first object is within the activation region based on thepulses and corresponding echoes sensed during the second time period.

Example 19 includes the method of example 18, further including, inresponse to no longer detecting the first object within the activationregion during the second time period, producing additional ones of thepulses spaced at the first fixed intervals during a third time periodafter the second time period.

Example 20 includes the method of any one of examples 12-19, furtherincluding generating a full echo profile based on the pulses and thecorresponding echoes sensed by the microphone, identifying peaks in thefull echo profile, different ones of the peaks corresponding to eitherthe pulses or the corresponding echoes, identifying repeating referencesignals based on the peaks identified in the full echo profile, therepeating reference signals corresponding to the pulses sensed by themicrophone, identifying an echo signal between separate occurrences ofthe repeating reference signals, the echo signal corresponding to one ofthe echoes, and determining whether the first object is within theactivation region based on a time difference between the echo signal anda preceding one of the repeating reference signals.

Example 21 includes the method of example 20, wherein the identifyingthe repeating reference signals includes identifying a first subset ofthe peaks associated with an intensity that satisfy a threshold, andidentifying a second subset of the peaks from among the first subsetthat are detected at a periodicity corresponding to the fixed intervalsof the pulses.

Example 22 includes the method of any one of examples 20 or 21, furtherincluding identifying the repeating reference signals at a first pointin time, verifying whether subsequent ones of the peaks identified afterthe first point in time are associated with an intensity and aperiodicity corresponding to subsequent occurrences of the repeatingreference signals, in response to verification that the subsequent onesof the peaks correspond to the subsequent occurrences of the repeatingreference signals, determining whether the first object is within theactivation region, and in response to an inability to verify that thesubsequent ones of the peaks correspond to the subsequent occurrences ofthe repeating reference signals, inhibiting the determination of whetherthe first object is within the activation region until the repeatingreference signals are again identified at a second point in time.

Example 23 includes a non-transitory computer readable medium comprisinginstructions that, when executed, cause a computing device to at leastproduce a series of pulses, successive ones of the pulses spaced atfixed intervals, ones of the pulses having a central frequency between18 kHz and 24 kHz, sense the pulses and echoes of the pulses reflectedoff objects in a vicinity of the computing device, and determine whethera first object is within an activation region associated with thecomputing device based on the pulses and the echoes.

Example 24 includes the non-transitory computer readable medium ofexample 23, wherein the instructions further cause the computing deviceto, in response to the determination of the first object being withinthe activation region, implement an operation in the computing device.

Example 25 includes the non-transitory computer readable medium ofexample 24, wherein the operation includes transitioning the computingdevice from a first state to a second state, the first state being alower power state than the second state.

Example 26 includes the non-transitory computer readable medium of anyone of examples 23-25, wherein the instructions further cause thecomputing device to generate a static environment echo profile based onones of the echoes reflected off static objects in the vicinity of thecomputing device, compare the echoes to the static environment echoprofile, and identify a presence of the first object based on thecomparison.

Example 27 includes the non-transitory computer readable medium ofexample 26, wherein the instructions further cause the computing deviceto identify a change in the environment based on the echoes, and updatethe static environment echo profile based on the change in theenvironment.

Example 28 includes the non-transitory computer readable medium of anyone of examples 26 or 27, wherein the instructions further cause thecomputing device to generate a full echo profile based on the pulses andthe corresponding echoes, remove static data corresponding to the staticenvironment echo profile from the full echo profile to generate anon-static echo profile, and determine whether the first object iswithin the activation region based on the non-static echo profile.

Example 29 includes the non-transitory computer readable medium of anyone of examples 23-28, wherein the instructions further cause thecomputing device to produce successive ones of the pulses spaced atfirst fixed intervals during a first time period, detect the firstobject within the activation region based on the pulses andcorresponding echoes sensed during the first time period, in response todetecting the first object within the activation region during the firsttime period, produce additional ones of the pulses spaced at secondfixed intervals during a second time period after the first time period,the second fixed intervals being shorter than the first fixed intervals,and verify the first object is within the activation region based on thepulses and corresponding echoes sensed during the second time period.

Example 30 includes the non-transitory computer readable medium ofexample 29, wherein the instructions further cause the computing deviceto, in response to no longer detecting the first object within theactivation region during the second time period, produce additional onesof the pulses spaced at the first fixed intervals during a third timeperiod after the second time period.

Example 31 includes the non-transitory computer readable medium of anyone of examples 23-30, wherein the instructions further cause thecomputing device to generate a full echo profile based on the pulses andthe corresponding echoes, identify peaks in the full echo profile,different ones of the peaks corresponding to either the pulses or thecorresponding echoes, identify repeating reference signals based on thepeaks identified in the full echo profile, the repeating referencesignals corresponding to the pulses, identify an echo signal betweenseparate occurrences of the repeating reference signals, the echo signalcorresponding to one of the echoes, and determining whether the firstobject is within the activation region based on a time differencebetween the echo signal and a preceding one of the repeating referencesignals.

Example 32 includes the non-transitory computer readable medium ofexample 31, wherein the instructions further cause the computing deviceto identify the repeating reference signals by identifying a firstsubset of the peaks associated with an intensity that satisfy athreshold, and identifying a second subset of the peaks from among thefirst subset that are detected at a periodicity corresponding to thefixed intervals of the pulses.

Example 33 includes the non-transitory computer readable medium of anyone of examples 31 or 32, wherein the instructions further cause thecomputing device to identify the repeating reference signals at a firstpoint in time, verify whether subsequent ones of the peaks identifiedafter the first point in time are associated with an intensity and aperiodicity corresponding to subsequent occurrences of the repeatingreference signals, in response to verification that the subsequent onesof the peaks correspond to the subsequent occurrences of the repeatingreference signals, determine whether the first object is within theactivation region, and in response to an inability to verify that thesubsequent ones of the peaks correspond to the subsequent occurrences ofthe repeating reference signals, inhibit the determination of whetherthe first object is within the activation region until the repeatingreference signals are again identified at a second point in time.

Example 34 includes a computing device comprising a speaker to produce aseries of repeating pulses at a consistent periodicity, the repeatingpulses having a central frequency between 18 kHz and 24 kHz, amicrophone to sense noise information including the pulses and echoes ofthe pulses reflected off objects in an environment surrounding thecomputing device, and at least one processor to determine a proximity ofa first one of the objects based on the noise information.

Example 35 includes the computing device of example 34, wherein the atleast processor is to, in response to detection of the first objectwithin an activation region associated with the computing device,implement an operation in the computing device.

Example 36 includes the computing device of example 35, wherein theoperation includes waking up the computing device from a sleep state toan active state.

Although certain example methods, apparatus and articles of manufacturehave been disclosed herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe claims of this patent.

1. (canceled)
 2. A computing device comprising: a speaker; at least onestorage device; and at least one processor to execute instructions to:cause the speaker to produce a series of pulses, at least one of thepulses having a central frequency in a near ultrasonic range; accessnoise information, the noise information output by a microphone, thenoise information representative of the pulses and echoes of the pulsesreflected off surfaces in a vicinity of the computing device; andprocess the noise information to determine whether a first object iswithin an activation region associated with the computing device.
 3. Thecomputing device of claim 2, wherein the at least one processor is to,in response to a determination that the first object is within theactivation region, execute an operation in the computing device.
 4. Thecomputing device of claim 3, wherein the operation includestransitioning the computing device from a first state to a second state,the first state being a lower power state than the second state.
 5. Thecomputing device of claim 2, wherein the at least one processor is to:generate a static environment echo profile based on ones of the echoesreflected off static ones of the surfaces in the vicinity of thecomputing device; and compare the echoes represented in the noiseinformation to the static environment echo profile.
 6. The computingdevice of claim 5, wherein the at least one processor is to identify achange in an environment surrounding the computing device based on thenoise information, and update the static environment echo profile basedon the change in the environment.
 7. The computing device of claim 5,wherein the at least one processor is to: generate a full echo profilebased on the noise information; and remove static data corresponding tothe static environment echo profile from the full echo profile togenerate a non-static echo profile, the at least one processor toprocess the noise information to determine whether the first object iswithin the activation region based on the non-static echo profile. 8.The computing device of claim 2, wherein successive ones of the pulsesare spaced at first intervals during a first time period, and the atleast one processor is to: in response to detection of the first objectwithin the activation region during the first time period, cause thespeaker to produce additional ones of the pulses spaced at secondintervals during a second time period after the first time period, thesecond intervals being shorter than the first intervals; and verify thefirst object is within the activation region based on the pulses andcorresponding echoes sensed during the second time period.
 9. Thecomputing device of claim 8, wherein the at least one processor is to,in response to the first object no longer being detected within theactivation region during the second time period, cause the speaker toproduce additional ones of the pulses during a third time period afterthe second time period.
 10. The computing device of claim 2, wherein theat least one processor is to: generate a full echo profile based on thepulses and the corresponding echoes sensed by the microphone; identifypeaks in the full echo profile, different ones of the peakscorresponding to either the pulses or the corresponding echoes; identifyrepeating reference signals based on the peaks identified in the fullecho profile, the repeating reference signals corresponding to thepulses; and identify an echo signal between separate occurrences of therepeating reference signals, the echo signal corresponding to one of theechoes, the at least one processor to determine whether the first objectis within the activation region based on a time difference between theecho signal and a preceding one of the repeating reference signals. 11.The computing device of claim 10, wherein the at least one processor isto identify the repeating reference signals by: identifying a firstsubset of the peaks associated with an intensity that satisfy athreshold; and identifying a second subset of the peaks from among thefirst subset that are detected at a periodicity corresponding to aninterval at which the speaker is to produce the pulses.
 12. Thecomputing device of claim 10, wherein the at least one processor is to:identify the repeating reference signals at a first point in time;verify whether subsequent ones of the peaks identified after the firstpoint in time are associated with an intensity and a periodicitycorresponding to subsequent occurrences of the repeating referencesignals; in response to verification that the subsequent ones of thepeaks correspond to the subsequent occurrences of the repeatingreference signals, determine whether the first object is within theactivation region; and in response to an inability to verify that thesubsequent ones of the peaks correspond to the subsequent occurrences ofthe repeating reference signals, inhibit the determination of whetherthe first object is within the activation region until the repeatingreference signals are again identified at a second point in time. 13.The computing device of claim 10, wherein the activation region isdefined by a threshold distance from the computing device.
 14. A methodcomprising: producing, via a speaker of a computing device, a series ofpulses, at least one of the pulses having a central frequency in a nearultrasonic range; accessing noise information output by a microphone,the noise information representative of the pulses and echoes of thepulses reflected off surfaces in a vicinity of the computing device; andprocessing, by executing an instruction with at least one processor, thenoise information to determine whether a first object is within anactivation region associated with the computing device.
 15. The methodof claim 14, further including: generating a static environment echoprofile based on ones of the echoes reflected off static ones of thesurfaces in the vicinity of the computing device; and comparing theechoes represented in the noise information to the static environmentecho profile.
 16. The method of claim 14, wherein successive ones of thepulses are spaced at first intervals during a first time period, themethod further including: in response to detection of the first objectwithin the activation region during the first time period, producingadditional ones of the pulses spaced at second intervals during a secondtime period after the first time period, the second intervals beingshorter than the first intervals; and verifying the first object iswithin the activation region based on the pulses and correspondingechoes sensed during the second time period.
 17. A non-transitorycomputer readable medium comprising instructions that, when executed,cause a computing device to at least: produce a series of pulses, atleast one of the pulses having a central frequency in a near ultrasonicrange; access noise information output by a microphone, the noiseinformation representative of the pulses and echoes of the pulsesreflected off surfaces in a vicinity of the computing device; andprocess the noise information to determine whether a first object iswithin an activation region associated with the computing device. 18.The non-transitory computer readable medium of claim 17, wherein theinstructions further cause the computing device to, in response to adetermination that the first object is within the activation region,execute an operation in the computing device.
 19. The non-transitorycomputer readable medium of claim 18, wherein the operation includestransitioning the computing device from a first state to a second state,the first state being a lower power state than the second state.
 20. Thenon-transitory computer readable medium of claim 18, wherein theinstructions further cause the computing device to: generate a staticenvironment echo profile based on ones of the echoes reflected offstatic ones of the surfaces in the vicinity of the computing device; andcompare the echoes represented in the noise information to the staticenvironment echo profile.
 21. The non-transitory computer readablemedium of claim 20, wherein the instructions further cause the computingdevice to: generate a full echo profile based on the noise information;and remove static data corresponding to the static environment echoprofile from the full echo profile to generate a non-static echoprofile, the determination of whether the first object is within theactivation region based on the non-static echo profile.
 22. Thenon-transitory computer readable medium of claim 17, wherein successiveones of the pulses are spaced at first intervals during a first timeperiod, and the instructions further cause the computing device to: inresponse to detection of the first object within the activation regionduring the first time period, produce additional ones of the pulsesspaced at second intervals during a second time period after the firsttime period, the second intervals being shorter than the firstintervals; and verify the first object is within the activation regionbased on the pulses and corresponding echoes sensed during the secondtime period.
 23. The non-transitory computer readable medium of claim17, wherein the instructions further cause the computing device to:generate a full echo profile based on the pulses and the correspondingechoes; identify peaks in the full echo profile, different ones of thepeaks corresponding to either the pulses or the corresponding echoes;identify repeating reference signals based on the peaks identified inthe full echo profile, the repeating reference signals corresponding tothe pulses; and identify an echo signal between separate occurrences ofthe repeating reference signals, the echo signal corresponding to one ofthe echoes, the determination of whether the first object is within theactivation region based on a time difference between the echo signal anda preceding one of the repeating reference signals.
 24. A computingdevice comprising: means for producing a series of pulses, at least oneof the pulses having a central frequency in a near ultrasonic range; andmeans for processing noise information, the noise information output bya microphone, the noise information representative of the pulses andechoes of the pulses reflected off surfaces in a vicinity of thecomputing device, the processing means to determine a presence of afirst object within an activation region associated with the computingdevice based on the noise information.
 25. The apparatus of claim 24,wherein the processing means is to activate an operation in thecomputing device in response to a determination that the first object ispresent within the activation region.
 26. The apparatus of claim 25,wherein the operation includes waking up the computing device from asleep state to an active state.